package common_util

// 如果参数 pointer 是空指针则返回该类型的默认值
func DefaultIfNil[T any](pointer *T) T {
	if pointer == nil {
		var defaultValue T

		return defaultValue
	}

	return *pointer
}

// 如果参数 pointer 是空指针则返回自定义默认值
func CustomIfNil[T any](pointer *T, defaultValue T) T {
	if pointer == nil {
		return defaultValue
	}

	return *pointer
}

// 如果参数 pointer 是空指针则返回空字符串
func EmptyStringIfNil(pointer *string) string {
	return DefaultIfNil[string](pointer)
}

// 如果参数 pointer 是空指针则返回自定义字符串
func CustomStringIfNil(pointer *string, defaultValue string) string {
	return CustomIfNil[string](pointer, defaultValue)
}
